<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1.冒泡排序：可以把任意的数据元素从小到大排列或从大到小排列
        // 双重for循环 外层控制趟数 内层控制每次交换次数
        // 最后交换两个数据元素
        // var arr = [3, 4, 1, 2, 5]
        // for (var i = 0; i < arr.length - 1; i++) {
        //     for (var j = 0; j < arr.length - i - 1; j++) {
        //         if (arr[j] > arr[j + 1]) {
        //             var tmp = arr[j]
        //             arr[j] = arr[j + 1]
        //             arr[j + 1] = tmp
        //         }

        //     }
        // }
        // console.log(arr);

        //练习 冒泡排序：可以把任意数据元素从小到大或从大到小排列顺序
        // var arr = [3, 4, 1, 2, 5, 5, 8, 6, 7, 9, 8, 4, 57, 35, 34, 56, 78, 67, 56, 98, 78, 67, 54, 3, 456, 745, 57, 5, 45, 4, 56, 45, 4]
        // for (var i = 0; i < arr.length - 1; i++) { //外层循环 终止条件 索引从0开始算到最后一个i <.length -1 即可
        //     for (var j = 0; j < arr.length - i - 1; j++) {//内层循环控制每趟交换次数 交换的次数是比外层循环还要在额外少一次 所以 终止条件就是 长度 -外层索引i - 1
        //         if (arr[j] > arr[j + 1]) { //要想从小到大排列就是第一个索引>第二个索引 从大大小则反之
        //             var tmp = arr[j]//tmp临时变量。交换两个变量位置 需要额外创建一个临时的变量 然后相互交换
        //             arr[j] = arr[j + 1]
        //             arr[j + 1] = tmp
        //         }
        //     }

        // }
        // console.log(arr);

        // 练习[3, 4, 1, 2, 5, 5, 8, 6, 7, 9, 8,25,45,67,1,2,5,7,4,56,47,98]从大到小排列
        // var arr = [3, 4, 1, 2, 5, 5, 8, 6, 7, 9, 8, 25, 45, 67, 1, 2, 5, 7, 4, 56, 47, 98]
        // for(var i = 0;i < arr.length - 1;i++) {
        //     for(var j = 0 ; j < arr.length - 1; j++) {
        //         if(arr[j] < arr[j + 1]) {//从大到小就是第一个小于第二个从小到大则反之 因为要交换两个元素 交换后 输出就是元素2交换元素1
        //             var tmep = arr[j ]
        //             arr[j] = arr[j + 1]
        //             arr[j + 1] = tmep 
        //         }
        //     }
        // }
        // console.log(arr);




        // [1,2,3,4,5,6,7,8,9] 从大到小排序
        // var arr = [1,2,3,4,5,6,7,8,9]
        // for(var i = 0; i < arr.length -1; i++) {
        //     for(var j = 0; j < arr.length - i -1; j++) {
        //         if(arr[j] < arr[j + 1]) {
        //             var tmep = arr[j]
        //             arr[j] = arr[j + 1]
        //             arr[j + 1] = tmep
        //         }
        //     }
        // }
        // console.log(arr);







        // 练习[3, 4, 1, 2, 5, 5, 8, 6, 7, 9, 8,25,45,67,1,2,5,7,4,56,47,98]从大到小排列
        //双重遍历循环 初始为索引号初始值 循环终止条件到数组最后一位 length-1 
        //交换两个数据元素 执行条件：内层循环元素（需要交换的元素在内层）第一个大于第二个时 互相交换 
        var arr = [3, 4, 1, 2, 5, 5, 8, 6, 7, 9, 8, 25, 45, 67, 1, 2, 5, 7, 4, 56, 47, 98]
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] < arr[j + 1]) {
                    var temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp
                }
            }
        }
        console.log(arr);



    </script>
</head>

<body>

</body>

</html>